//
//  main.m
//  OClesson_01 类和对象
//
//  Created by 米华 on 16/2/24.
//  Copyright © 2016年 Apon. All rights reserved.
//

#import <Foundation/Foundation.h>
#import "Person.h"//导入头文件
int main(int argc, const char * argv[]) {
    
    
#pragma mark - 知识点1: 类和对象
    /**
     * 类: 由实例变量(特征)和方法(行为)组成.
     * 面向对象编程三步: 1.定义类 2.创建对象(在堆区开辟空间,用指针来访问) 3.使用对象(调用对象方法功能).
     *
     */
    
    
    
    
#pragma mark - 1.1 类的定义
    /**详见 Person.h 和 Person.m 类文件. */
    
    /**     */
    
    
    
    
    
#pragma mark - 1.2 创建对象
    
#if 0
    //1.开辟空间
    Person *person1 = [Person alloc];
    
    //2.初始化
    person1 =  [person1 init];
    
    // alloc之后必须初始化,所以通常alloc方法和init方法连写.
    Person *person2 = [[Person alloc] init];
    

    
#endif
    
    
    
#pragma mark - 知识点2:使用对象
    
    
    /** 使用对象就是调用方法(功能). */
    //创建对象.
#if 0
    Person *person1 = [[Person alloc] init];
    
    Person *person2 = [[Person alloc] init];
    
    Person *person3 = [[Person alloc] init];
    
    Person *person4 = [[Person alloc] init];
    
    Person *person5 = [[Person alloc] init];
    
    //使用对象(调用方法)
    [person1 info];
    
    [person1 sayHi];
#endif
    
#pragma mark - 知识点3:实例变量的操作
    
    
    // 创建对象
    Person *per1 = [[Person alloc] init];
    
    // 实例变量的赋值.
    per1->_name = @"张三";//在常量区开辟一块区域
    per1->_age = 18;
    
    
    //实例变量取值
    NSLog(@"name:%@", per1->_name);
    [per1 info];
    [per1 sayHi];
    return 0;
}
